import matplotlib.pyplot as plt
import cv2 as cv
import os
import pandas as pd
from skimage import io
img_list = []
for f in os.listdir():
    if'.py' in f:
        continue
    img = cv.imread(f, 0)
    # img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    # img_gray = cv.equalizeHist(img_gray)
    # 1. 创建级联分类器
    face_cascade = cv.CascadeClassifier()
    # 2. 引入训练好的可用于人脸识别的级联分类器模型
    face_cascade.load("E:/haarcascade_frontalface_alt.xml")
    # 3. 用此级联分类器识别图像中的所有人脸信息，返回一个包含有所有识别的人联系系的列表
    # 列表中每一个元素包含四个值：面部左上角的坐标(x,y) 以及面部的宽和高(w,h)
    faces = face_cascade.detectMultiScale(img)
    faces_list = len(list(faces))
    # 4. 为图像中的所有面部画框
    if faces_list != 0:
        for (x, y, w, h) in faces:
            cv.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
        img_faces = img[y:y+h, x:x+w]
    # io.imsave("E:/gutianle.jpg")
    if faces_list == 0:
        continue
    # img_faces = cv.imread("E:/gutianle.jpg",0)
    if(img_faces.shape[0] < 32):
        continue
    if(img_faces.shape[0] >= 32):
        img = cv.resize(img_faces, (32, 32))
        img = img.ravel()
        img_list.append(img)
df = pd.DataFrame(img_list)
df.insert(df.shape[1], 'label', 3)  # 古天乐为3
df.to_csv("E:/zhouhuimi.csv")
print("成功")
